package com.example.demo.controller;


import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletResponse;

@RequestMapping("/mvc")
@Controller // spring 初始化此类
//@ResponseBody
//代表上面两个注解
//@RestController
@Slf4j
public class MVCController {

//    @Autowired
//    private ObjectMapper objectMapper;
//
//    @RequestMapping("/index8")
//    public User getIndex8(){
//        User user = new User();
//        user.setUsername("Java");
//        user.setPassword("hello");
//        return user;
//    }
//spring会自动将类装换成json数据返回，像index8
//    @RequestMapping("/index7")
//    @ResponseBody // 返回类型为自定义的类型，而非视图
//    public String getIndex7() throws JsonProcessingException {
//        User user = new User();
//        user.setUsername("Java");
//        user.setPassword("hello");
//        // 将对象转换成 JSON 字符串
//        String result =
//                objectMapper.writeValueAsString(user);
//        log.error(result);
//        return result;
//    }
//
    @RequestMapping(value = "/index6",method = RequestMethod.GET)
    @ResponseBody // 返回类型为自定义的类型，而非视图
    public String getIndex6(){
        return "/index.html";
    }
//
//    @PostMapping("/index5")
//    public String getIndex5(){
//        log.error("我是 index5");
//        return "/index.html";
//    }
//只接受get请求
//    @GetMapping("/index4")
//    public String getIndex4(){
//        log.error("我是 index4");
//        return "/index.html";
//    }
//重定向
    @RequestMapping("/index")
    public String getIndex(){
        log.error("我是 index.html");
        //return "/index.html";
        //重定向
       return "redirect:/index.html";
    }
//请求转发
//    @RequestMapping("/index2")
//    public String getIndex2(){
//        log.error("我是请求转发");
//        return "forward:/index.html";
//    }
//
//    /**
//     * 实现 301 跳转永久重定向
//     * @param response
//     * @return
//     */
    @RequestMapping("/index3")
    public String getIndex3(HttpServletResponse response){
        response.setStatus(301);
//        response.setHeader("Location","http://localhost:8080/index.html");
        response.setHeader("Location","/index.html");
        return null;
    }

}